package healthylife.top.sync;

import java.io.File;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 文件服务器的文件列表
 *
 * @author maomao
 */
public interface FileSyncService {

    String getSource();

    String getTarget();

    String getWorkspace();

    /**
     *
     * @return 默认配置文件名称
     */
    default String getConf() {
        return getWorkspace() + File.separator + "sync.conf";
    }

    /**
     * 默认日志文件名称
     * @param time 时间
     * @return 默认日志文件名称
     */
    default String getLog(String time) {
        if (time == null) {
            time = LocalDateTime.now().toString();
        }
        return getWorkspace() + File.separator + "sync-" + time + ".log";
    }

    /**
     * 来源文件列表
     *
     * @return 来源文件列表
     */
    List<FileInfo> sourceFiles();

    /**
     * 目标文件列表
     *
     * @return 目标文件列表
     */
    List<FileInfo> targetFiles();

    /**
     * 相对路径
     *
     * @param source 来源相对路径
     * @param target 目标相对路径
     * @return int -1 无需更新, 0 新增 1 更新
     */
    int transfer(String source, String target);

    /**
     * 删除文件的相对路径
     *
     * @param filePath 删除文件的相对路径
     */
    void deleteFile(String filePath);
}
